package com.lagou.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.lagou.entity.UserCourseOrder;
import com.lagou.service.OrderService;
import mapper.OrderDao;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private OrderDao orderDao;

    /**
     * 生成订单
     *
     * @param orderNo          订单编号
     * @param userId           用户编号
     * @param courseId         课程编号
     * @param activityCourseId 活动课程编号
     * @param sourceType       订单来源类型
     */
    @Override
    public void saveOrder(String orderNo, String userId, String courseId, String activityCourseId, String sourceType) {
        orderDao.saveOrder(orderNo, userId, courseId, activityCourseId, sourceType);
    }

    /**
     * 修改订单
     *
     * @param orderNo 订单编号
     * @param status  订单状态 0已创建 10未支付 20已支付 30已取消 40已过期
     * @return 受影响的行数
     */
    @Override
    public Integer updateOrder(String orderNo, int status) {
        return orderDao.updateOrder(orderNo, status);
    }

    /**
     * 删除订单
     *
     * @param orderNo 订单编号
     * @return 受影响行数
     */
    @Override
    public Integer deleteOrder(String orderNo) {
        return orderDao.deleteOrder(orderNo);
    }

    /**
     * 查询用户所有订单
     *
     * @param userId 用户编号
     * @return 订单对象列表
     */
    @Override
    public List<UserCourseOrder> getOrdersByUserId(String userId) {
        return orderDao.getOrdersByUserId(userId);
    }
}
